package com.lcz.nohttpdemo.activity;

import android.app.Activity;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;

import com.google.gson.Gson;
import com.lcz.nohttpdemo.R;
import com.lcz.nohttpdemo.databinding.ActivityMainBinding;
import com.lcz.nohttpdemo.dialog.WaitDialog;
import com.lcz.nohttpdemo.domain.User;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.RequestMethod;
import com.yolanda.nohttp.rest.OnResponseListener;
import com.yolanda.nohttp.rest.Request;
import com.yolanda.nohttp.rest.RequestQueue;
import com.yolanda.nohttp.rest.Response;

public class MainActivity extends Activity {

    private ListView list;
    /**
     * 请求的时候等待框。
     */
    private WaitDialog mWaitDialog;

    /**
     * 请求队列。
     */
    private RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        binding.setUser(new User("aa", "16"));
        mWaitDialog = new WaitDialog(this);
        list = (ListView) findViewById(R.id.list_item);
        findViewById(R.id.seach).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 创建请求队列, 默认并发3个请求,传入你想要的数字可以改变默认并发数, 例如NoHttp.newRequestQueue(1)。
                requestQueue = NoHttp.newRequestQueue();

                String url = "http://apis.baidu.com/geekery/music/singer";
                // 创建请求对象。
                Request<String> request = NoHttp.createStringRequest(url, RequestMethod.GET);
                // 添加请求参数。
                request.add("name", "邓紫棋");
                // 请求头，是否要添加头，添加什么头，要看开发者服务器端的要求。
                request.addHeader("apikey", "8894f3d9fb5b5af788610513930d7805");

                requestQueue.add(1, request, new OnResponseListener<String>() {
                    @Override
                    public void onStart(int what) {
                        // 请求开始时，可以显示一个Dialog
                        if (mWaitDialog != null && !mWaitDialog.isShowing()) {
                            mWaitDialog.show();
                        }
                    }

                    @Override
                    public void onSucceed(int what, Response<String> response) {
                        if (what == 1) {
                            // 服务器响应码。
                            int responseCode = response.getHeaders().getResponseCode();
                            if (responseCode == 200) {
                                //响应结果
                                String result = response.get();
                                System.out.println("返回结果：" + result);
                            }
                        }
                    }

                    @Override
                    public void onFailed(int what, String url, Object tag, Exception exception, int responseCode, long networkMillis) {
                        // 请求失败
                    }

                    @Override
                    public void onFinish(int what) {
                        // 请求接受时，关闭Dialog
                        if (mWaitDialog != null && mWaitDialog.isShowing()) {
                            mWaitDialog.dismiss();
                        }
                    }
                });
            }
        });

    }
}
